# -*- coding:utf-8 -*-
"""
@Time:  2024/6/14 15:17
@Auth:  Mrs.Gou 
@Function:  选择排序是冒泡排序的优化（选择排序效率会高一些）
"""
import time

# height = [155, 187, 187, 160, 163, 166, 173, 182, 165, 159]
# start,end,step，区间是左闭右开[start,end)，i的初始值是0
height = [i for i in range(5000, 0, -1)]
# 每一轮选出最大，最小的，放到末尾or开头
# 然后对剩下的元素，重复第一步比较
# 直到剩下一个元素

# 对剩下的元素，重复第一步比较，轮次也是比元素少一次
print('降序排升序')
t1 = time.time()
for j in range(len(height) - 1):
    # 第一个为标准
    base = 0
    # 每一轮选出最大，最小的就放到末尾
    # 因为第一个是标准，所以下标从1开始
    # 每一轮比较，都要少比较一个元素，所以-j
    for i in range(1, len(height) - j):
        if height[i] > height[base]:
            base = i
    # 放到末尾（每一轮的末尾都会多一个元素）
    height[base], height[len(height) - 1 - j] = height[len(height) - 1 - j], height[base]
print(height)
t2 = time.time()
print(t2 - t1)

# sort()可以对列表进行[排序]
# reverse参数控制排序‘升序’和‘降序’，True表示降序，False表示升序，默认reverse=false
# l.sort(reverse=True)
l = [1, 2, 3, 4, 3, 4, 34, 345, 90]
l.sort()
print(l)
